﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

class MyClass
{
public:
	/*MyClass()
	{
		cout << "默认构造函数！" << endl;
	}*/
	MyClass(int a)
	{
		cout << "有参构造函数！" << endl;
	}
	/*MyClass(const MyClass& m)
	{
	}*/
	int m_A;
};
//3.当我们提供了拷贝构造，那么系统就不会再提供其他构造了；默认构造函数也不提供了；
class MyClassCopy
{
public:
	MyClassCopy()
	{
		cout << "MyClassCopy：：默认构造函数！" << endl;
	}
	MyClassCopy(const MyClassCopy& m)
	{

	}
};
//2.系统默认给一个类提供3个函数：默认构造，拷贝构造，析构函数；
//1.当我们提供了有参构造函数，那么系统就不会再给我们提供默认构造函数了；
	//但系统还会提供默认拷贝构造函数，进行简单的值拷贝；
void testCallRule()
{
	//MyClass c1;
	MyClass c1(1);//有参构造函数！
	c1.m_A = 10;
	MyClass c2(c1);
	cout << c2.m_A << endl;//10

	//MyClassCopy c3;
	MyClassCopy c4;//MyClassCopy：：默认构造函数！
}

//main260：构造函数的调用规则
int main260()
{
	testCallRule();

	system("pause");
	return EXIT_SUCCESS;
}